<?php
/**
 * 用户接口
 * User: 16
 * Date: 2018/1/19
 * Time: 21:58
 */
namespace app\api\controller;

use think\Request;
use data\service\UserService;
use think\facade\Session;

class User extends BaseApi
{
    private $user;

    // 验证失败是否抛出异常
    protected $failException = true;

    protected function initialize()
    {
        parent::initialize();
        $this->user = new UserService();
    }

    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {

    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        echo $id;
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }

    /**
     * 登陆
     * @author 16
     * @date 2018-1-19
     */
    public function login(Request $request)
    {
        $post = $request->only(['username','psw'], 'post');
        $validate = new \app\api\validate\User;

        if (!$validate->check($post))
        {
            return $this->returnInfo(0,$validate->getError());
        }

        if ($user = $this->user->checkUser($post))
        {
            $this->user->setLoginStatus($user);
            return $this->returnInfo(0,'登陆成功',['url'=>url('/admin')]);
        }else {
            return $this->returnInfo(1,$this->user->getError());
        }
    }


    /**
     * 退出登陆
     * @author 16
     * @date 2018-1-22
     */
    public function loginExit(){
        Session::delete('user');
        return $this->returnInfo(0,'退出成功',['url'=>url('/admin/login')]);
    }

    /**
     * 判断用户是否登陆，登陆则返回当前用户信息
     * @author 16
     * @date 2018-1-22
     */
    public static function checkLogin(){
        return Session::has('user') ? Session::get('user') :false;
    }

}
